Управление системными учетными записями

Введение

Инструкция предназначена для предоставления информации о безопасном и корректном механизме управления системными учетными записями, используемыми для работы ALD Pro.

Термины и определения

  • Контроллер домена (КД) - сервер, который контролирует определенную область компьютерной сети, а также управляет доступом к различным ресурсам внутри этой области.

  • Служба каталога - средство иерархического представления ресурсов и информации об этих ресурсах.

  • Lightweight Directory Access Protocol (LDAP) - протокол прикладного уровня для доступа к службе каталогов, разработанный как облегчённый вариант протокола DAP. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей.

  • Free Identity Policy and Audit (FreeIPA) - открытое программное обеспечение, специализированная служба каталогов, предназначенная для создания в ОС Linux среды, позволяющей централизованно управлять аутентификацией пользователей, устанавливать политики доступа и аудита. Функционал FreeIPA подобен Active Directory, используемому в Windows.

  • 389 Directory Server (389 DS) - служба каталогов уровня предприятия с открытым исходным кодом, предназначенная для централизованного управления доступом к ресурсам на множестве сетевых серверов.

  • Системная учетная запись (Системная УЗ) - под системными учетными записями понимаются записи службы каталога, находящиеся в контейнере cn=sysaccounts,cn=ipa,dc={domain_component}, а также специальные учетные записи PostgreSQL, RabbitMQ, Zabbix, Grafana, используемые ALD Pro для выполнения различных действий, не связанных с действиями пользователей системы. Эти учетные записи не предназначены для обычных пользователей и обеспечивают функционирование различных сервисов и ролей внутри инфраструктуры, поддерживая безопасность и доступ в системе на уровне домена.

  • Secure Shell (SSH) - сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений.

  • Samba - пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS.

  • Domain Name System (DNS) - система доменных имён — это иерархическая децентрализованная система именования для ресурсов, подключённых к глобальной сети, которая ведёт список доменных имён вместе с их числовыми IP-адресами или местонахождениями.

  • Kerberos - сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними. Kerberos выполняет аутентификацию в качестве службы аутентификации доверенной третьей стороны, используя криптографический ключ. Kerberos построен на криптографии симметричных ключей и требует наличия центра распределения ключей. Расширения Kerberos могут обеспечить использование криптографии с открытым ключом на определённых этапах аутентификации.

  • Internet Protocol (IP) - маршрутизируемый протокол сетевого уровня стека TCP/IP.

  • Transmission Control Protocol (TCP) - протокол управления передачей - протокол сети интернет, который позволяет двум хостам создать соединение и обмениваться потоками данных. TCP гарантирует доставку данных и пакетов в том же порядке, в котором они были отправлены.

  • IP-адрес - уникальный числовой идентификатор устройства в компьютерной сети, работающей по протоколу IP.

  • Аccess control instruction (ACI) - инструкция управления доступом, которая определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей).

Общий алгоритм смены учетных данных для системных учетных записей в 389 DS

Общее описание

В ALD Pro используются системные учетные записи для различных целей, связанных с управлением внутренними сервисами, выполнением различных служебных операций, управлением инфраструктурой безопасности и аутентификацией. Эти учетные записи хранятся в контейнере cn=sysaccounts,cn=etc базы данных LDAP, которая управляется с помощью одного из компонентов FreeIPA389 Directory Server (389 DS). Этот контейнер является частью структуры службы каталога, и его основная роль заключается в хранении специальных учетных записей, которые необходимы для работы сервисов и выполнения административных задач.

Смена учетных данных для системных учетных записей должна проводиться очень осторожно, поскольку эти учетные записи используются как самой службой FreeIPA, так и внешними приложениями или сервисами для доступа к базе данных LDAP или другим сервисам в инфраструктуре. Это важно, поскольку нужно убедиться, что после учетных данных внешние приложения продолжат корректно работать.

Идентификация учетных записей и их использования

Перед операциями над системными УЗ необходимо определить, какие внешние приложения или сервисы используют эти системные учетные записи. Это могут быть:

  • различные сервисы из состава ALD Pro;

  • сервис репликации между серверами FreeIPA;

  • система для управления сертификатами;

  • программы для интеграции с Active Directory;

  • службы аутентификации через LDAP или Kerberos;

  • другие сервисы, которые подключаются под системными учетными записями, используют LDAP для своих нужд и функционируют в текущей инфраструктуре.

Подготовка к смене учетных данных для системных учетных записей

Перед сменой учетных данных необходимо выполнить следующие действия:

  • убедиться, что существуют рабочие резервные копии конфигураций всех внешних приложений, которые используют эти учетные записи;

  • оповестить ответственных за приложения или службы, использующие эти учетные записи, о предстоящей смене учетных данных, чтобы была возможность подготовиться к обновлению в своих конфигурациях (для сервисов и приложений, которые используют службу каталогов, но не входят в комплект поставки ALD Pro);

  • проверить настройки конфигурации в самих внешних приложениях, чтобы удостовериться, что они могут работать с новыми учетными данными.

Обновление конфигурации внешних приложений

После того как учетные данные для системных учетных записей в службе каталога были изменены, необходимо обновить их в конфигурациях внешних приложений, которые используют эти учетные записи для подключения к LDAP или другим сервисам.

В зависимости от того, какие внешние сервисы используют системные учетные записи, нужно будет обновить конфигурацию подключения в каждом приложении.

  1. Для сервисов, использующих LDAP, таких как приложения, которые подключаются к 389 DS из состава FreeIPA для аутентификации, обновить файл конфигурации LDAP, где прописаны учетные данные (или тот контейнер, откуда эти сервисы получают данные для аутентификации в LDAP). Внести изменения в конфигурационные файлы (контейнеры) каждого такого сервиса.

  2. Для Kerberos: Если системные учетные записи используются для аутентификации через Kerberos, обновить принципал Kerberos. Например:

  • kadmin.local -q "changepw some_kerberos_service"

    Если это сервисный принципал, то, возможно, потребуется перезапуск служб, использующих Kerberos.

  1. Если внешнее приложение использует учетную запись для других сервисов, например, для генерации сертификатов или управления политиками, необходимо убедиться, что данные обновлены в конфигурации этих сервисов. Например:

  • для ipa-certmaster: обновить конфигурационные файлы и убедиться, что процесс управления сертификатами будет продолжать работать;

  • для ipa-otpd: проверить, что изменения не повлияют на систему One-Time Password.

Перезапуск служб и тестирование работоспособности

После изменения учетных данных и обновления конфигураций приложений необходимо:

  1. Перезапустить все сервисы, которые используют эти учетные записи. Это может включать:

  • FreeIPA (IPA сервисы);

  • 389 DS (служба LDAP);

  • службы репликации;

  • сервисы, использующие Kerberos или Sudo;

  • другие связанные сервисы и приложения.

  1. Провести тестирование, чтобы убедиться, что все сервисы, использующие эти учетные записи, продолжают функционировать правильно. Это можно сделать, проверив подключение к LDAP, а также тестируя репликацию, аутентификацию пользователей и доступ к другим сервисам.

Мониторинг дальнейшей работы сервисов, использующих в своей работе системные учетные записи

После смены учетных данных и обновления конфигураций важно мониторить систему, чтобы убедиться, что нет сбоев или ошибок, связанных с неправильными учетными данными. Рекомендуется протестировать изменения в контролируемой среде перед их внедрением в рабочую инфраструктуру. Кроме того, необходимо иметь четкий план восстановления, чтобы оперативно устранить возможные ошибки в случае возникновения непредвиденных обстоятельств.

Управление системными учетными записями, используемыми ALD Pro, при работе с одной версией продукта

Общее описание

Системные учетные записи создаются автоматически при установке и настройке ALD Pro (также при настройке интеграции с RuPost) и не предназначены для обычного использования конечными пользователями.

Доступ системных учетных записей из ветки cn=sysaccounts,cn=etc к данным службы каталога настраивается с помощью ACI и механизма ролей/привилегий/разрешений ALD Pro, которые определяют, какие операции могут быть выполнены на уровне данных LDAP. Предустановленные в ALD Pro системные учетные записи настроены с такими ограничениями, которые обеспечивают безопасность и контролируют доступ к критически важным данным, обеспечивая правильную работу тех прикладных сервисов, которые подключаются к службе каталога под данными учетными записями.

Смена учетных данных для системных учетных записей должна проводиться крайне осторожно, поскольку эти учетные записи используются внешними приложениями или сервисами для доступа к базе данных LDAP или другим сервисам в инфраструктуре ALD Pro. Важно убедиться, что после смены учетных данных все компоненты ALD Pro и другие внешние приложения инфраструктуры продолжат корректно работать. Смена учетных данных для системных учетных записей, которые не хранятся в базе данных службы каталога, а используются для работы с другими внешними относительно ALD Pro продуктами (например, Zabbix, PostgreSQL), описана ниже.

Проверка репликации данных между экземплярами 389 Directory Server

Перед началом работы с системными учетными записями важно убедиться, что репликация данных работает корректно. Проверить состояние репликации с помощью следующих команд с выводом информации о состоянии в формате JSON:

dsconf -j <INSTANCE> replication status --suffix <SUFFIX>

где <INSTANCE> - имя экземпляра службы каталога, а <SUFFIX> - доменный суффикс. Для получения списка <INSTANCE> можно воспользоваться командой dsctl -l.

Например:

dsconf -j EXAMPLE-RU replication status --suffix dc=example,dc=ru

Если в результате команды выдается ответ в формате JSON со следующей парой ключ-значение:

{
"desc": "No object exists given the filter criteria..."
}

это означает, что репликация в данный момент не найдена или некорректно заданы условия для команды. Необходимо убедиться в том, что в портале управления ALD Pro в подразделе Управление доменомСайты и службы, на вкладке Соглашения о репликации присутствуют данные о репликации.

Проверить состояние репликации между серверами можно с помощью утилиты ds-replcheck:

ds-replcheck online -D "cn=Directory Manager" -m ldap://dc-1.ald.company.local:389 -r ldap://dc-2.ald.company.local:389 -b dc=ald,dc=company,dc=local

В случае отсутствия команды dsconf на конкретном КД, следует установить ее следующей командой:

sudo apt-get install python3-lib389

Управление системными учетными записями

К системным учетным записям, используемым для обеспечения корректной и бесперебойной работы ALD Pro, относятся следующие записи (по умолчанию при установке продукта находятся в файлах конфигурации ALD Pro):

Системная УЗ

Описание

Подсистема

Компонент

uid=aldpro_srv_zabbix,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись для обеспечения аутентификации с системой мониторинга Zabbix. С версии 3.1.0 не используется сервисами ALD Pro.

КД

389 DS

uid=commonenv,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись для чтения переменных окружения, используемых различными сервисами. С версии 3.1.0 не используется сервисами ALD Pro.

КД

389 DS

uid=orgunitsservice,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись управления организационными подразделениями.

КД

389 DS

uid=roleservice,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись для управления ролями и правами доступа.

КД

389 DS

uid=saltstackservice,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись системы управления конфигурациями SaltStack, используемая для автоматизированного развертывания и настройки компонентов или объектов каталога.

КД

389 DS

uid=simple_repo,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись для подсистемы репозиториев. Используется для доступа к ipaSshPubKey.

КД

389 DS

uid=syncer/dc01.example.ru@EXAMPLE.RU,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись, обеспечивающая синхронизацию данных MS AD с указанным сервером. В рамках текущей архитектуры модуль синхронизации функционирует на первом контроллере домена, что обусловливает корректность возможного отсутствия системных учетных записей Syncer на репликах КД.

КД

389 DS

uid=trustsservice,cn=sysaccounts,cn=etc,$SUFFIX

Системная учетная запись сервиса управления доверительными отношениями между доменами.

КД

389 DS

async_db

Системная учетная запись, предназначенная для асинхронных операций с базой данных (фоновые задачи, обработка очередей или отложенные транзакции). Обеспечивает выполнение запросов без блокировки основного потока обработки данных.

КД

PostgreSQL

core_db

Системная учетная запись портала управления ALD Pro, используемая системными процессами для доступа к базе данных.

КД

PostgreSQL

syncer_db

Системная учетная запись, ответственная за синхронизацию данных между PostgreSQL и другими системами (например, LDAP-каталогом). Обеспечивает поддержание консистентности данных.

КД

PostgreSQL

repo_db

Системная учетная запись для управления данными в репозиториях.

Репозиториии ПО

PostgreSQL

osinstall_db

Системная учетная запись сервиса сетевой установки ОС, ответственная за хранение и обработку конфигураций PXE.

Установка ОС по сети

PostgreSQL

zabbix

Системная учетная запись службы мониторинга Zabbix, предназначенная для сбора метрик производительности, хранения исторических данных и обработки триггеров. С версии 3.1.0 не использует пароль, подключение ведется по сокету.

Мониторинг

PostgreSQL

async_rabbitmq

Системная учетная запись для асинхронных операций взаимодействия портала управления ALD Pro.

КД

RabbitMQ

core_rabbitmq

Системная учетная запись для основных операций портала управления ALD Pro брокера сообщений.

КД

RabbitMQ

repo_rabbitmq

Системная учетная запись для управления сообщениями в системе репозиториев.

Репозиториии ПО

RabbitMQ

osinstall_rabbitmq

Системная учетная запись для сетевой установки ОС.

Установка ОС по сети

RabbitMQ

monitoring

Системная учетная запись для отображения данных мониторинга в портале управления.

Мониторинг

Zabbix

zabbix_api

Системная учетная запись для загрузки шаблонов и интеграции с Grafana.

Мониторинг

Zabbix

admin (Grafana)

Системная учетная запись для загрузки дашбордов и настройки интеграции с Zabbix. В указанных операциях для корректной настройки используется системная учетная запись Grafana, предопределенная в конфигурации grafana.ini. Данная учетная запись после установки подсистемы может быть заменена.

Мониторинг

Grafana

Также стоит учитывать, что при обновлении с младших версий, в списке системных УЗ будут присутствовать устаревшие системные записи для обеспечения обратной совместимости, в том числе в назначенных aci и атрибутах member необходимых ролей/привилегий/разрешений, которые возможно заблокировать или удалить после корректного обновления всех подсистем.

Важно

Системные УЗ уникальны для каждой подсистемы и КД, поэтому имя УЗ формируется по шаблону <system_account_name>_<api/db/rabbitmq>_<short_hostname>, например, saltstackservice_dc01 или core_db_dc01.

Управление системными учетными записями 389 Directory Server, используемыми для работы ALD Pro

Управление системными учетными записями 389 DS

Системные учетные записи 389 Directory Server зачастую необходимы для интеграций со сторонними приложениями и службами, которые поддерживают LDAP-аутентификацию. Управление системными УЗ 389 DS производится встроенными командами администрирования LDAP-каталога, более подробную информацию о которых возможно найти в справочной документации LDAP/389 DS.

Процесс создания системной учетной записи предполагает использование утилиты ldapadd с аутентификацией под учетной записью администратора, имеющим соответствующие права на контейнер cn=sysaccounts. Необходимо сформировать LDIF-документ, содержащий атрибуты: objectClass (account, nsMemberOf (опционально, зависит от необходимости назначения роли для УЗ), simplesecurityobject, top), userPassword и uid. Пароль должен быть хешированным, однако на практике допускается использование открытого текста с последующим автоматическим хешированием сервером:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
uid: system_account
userPassword: password_string
EOF

Для изменения атрибутов существующей системной учетной записи применяется утилита ldapmodify. Наиболее частые операции включают смену пароля, добавление членства в группах через механизм nsMemberOf. При смене пароля рекомендуется использовать метод замены (changetype: modify) с операцией replace:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: userPassword
userPassword: password_string
EOF

Права доступа для системных учетных записей могут назначаться как через стандартные механизмы ролевого доступа, так и через прямые назначения ACI. Рекомендуется использовать подход с правами через роли и привилегии, так как назначение ACI на конкретную системную учетную запись в дальнейшем приведет к сложности поддержки согласованности и консистентности информации о контроле доступа.

Назначение ролей/привилегий/разрешений осуществляется через атрибут member:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=<role_name>,cn=roles,cn=accounts,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<system_account>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF

Прямое создание ACI для системной учетной записи требует добавления записей контроля доступа в точку привязки ACI. Например, для предоставления прав на чтение всех записей в определенном поддереве (cn=sysaccounts):

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
add: aci
aci: (targetattr="*")(version 3.0; acl "System Account Access"; allow (read, search, compare) userdn="ldap:///uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru";)
EOF

Удаление системных учетных записей выполняется с помощью утилиты ldapdelete. Перед удалением необходимо убедиться, что учетная запись не используется какими-либо службами или приложениями, а также проверить и удалить все связанные ACI:

ldapdelete -x -D "cn=Directory Manager" -W "uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru"

Полное удаление ACI записи применяется когда ACI существует исключительно для предоставления прав целевой системной учетной записи и не содержит других субъектов доступа:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
delete: aci
aci: (targetattr="*")(version 3.0; acl "System Account Access";
allow (read, search, compare)
userdn="ldap:///uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru";)
EOF

Если системная учетная запись включена в группу, которая упомянута в ACI, необходимо изменить сам ACI, либо модифицировать состав группы:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=service_group,cn=groups,cn=accounts,dc=example,dc=ru
changetype: modify
delete: member
member: uid=system_account,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF

При возникновении проблем с аутентификацией системных учетных записей следует проверить:

  • корректность пароля;

  • наличие необходимых ACI для доступа к целевым ресурсам;

  • отсутствие конфликтующих правил доступа;

  • соответствие DN учетной записи в ACI и фактическому DN.

Для отладки возможно использовать утилиту ldapsearch и анализ журналов доступа Directory Server.

Переопределение системных УЗ 389 DS

В этом разделе описана замена учетных данных для всех системных учетных записей, расположенных в cn=sysaccounts,cn=etc,dc=example,dc=ru.

Важно

Изменение учетных данных для системной учетной записи в 389 DS приведет к прекращению работы всех сервисов, использующих данную учетную запись, до обновления их конфигураций с новыми данными и последующего перезапуска. В связи с этим после введения изменений из данного раздела, некоторые функции ALD Pro могут стать недоступны до корректировки в конфигурационных файлах продукта и перезапуска сервера Apache.

Примечание

При создании пароля для учетной записи можно использовать a-z, A-Z, 0-9.

Для того, чтобы выполнить замену системной УЗ необходимо создать аналогичную учетную запись:

Системная УЗ

Создание УЗ для замены

uid=orgunitsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<new_orgunitsservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newOrgunitsservicePassword}
EOF
uid=orgunitsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=orgunitservice managers,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<new_orgunitsservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF
uid=roleservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<new_roleservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newRoleservicePassword}
EOF
uid=roleservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=roleservice managers,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<new_roleservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF
uid=saltstackservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<new_saltstackservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newSaltstackservicePassword}
EOF
uid=saltstackservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=saltstackservice managers,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<new_saltstackservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF
uid=trustsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<new_trustsservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newTrustsservicePassword}
EOF
uid=trustsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=trustservice managers,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<new_trustsservice>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF
uid=syncer/dc01.example.ru@EXAMPLE.RU,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<newsyncer/dc01.example.ru@EXAMPLE.RU>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: krbPrincipal
objectClass: krbPrincipalAux
objectClass: krbTicketPolicyAux
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newsyncer/domain@REALM_password}
krbPwdPolicyReference: cn=Default System Accounts Password Policy,cn=sysaccounts,cn=etc,dc=example,dc=ru
krbPrincipalName: <newsyncer/dc01.example.ru@EXAMPLE.RU>
EOF
uid=syncer/dc01.example.ru@EXAMPLE.RU,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=ALDPRO - Main Administrator,cn=roles,cn=accounts,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<newsyncer/dc01.example.ru@EXAMPLE.RU>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF

Актуализировать учетные данные для подключения к контроллеру ALD во вкладке: Модуль синхронизации / Настройки / Контроллеры домена ALD.

uid=simple_*,cn=sysaccounts,cn=etc,$SUFFIX

Создать новую учетную запись, которая заменит неактуальную:

ldapadd -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<new_simple_repo>,cn=sysaccounts,cn=etc,dc=example,dc=ru
objectClass: account
objectClass: nsMemberOf
objectClass: simplesecurityobject
objectClass: top
userPassword: {newSimpleRepoPassword}
EOF
uid=simple_*,cn=sysaccounts,cn=etc,$SUFFIX

Выдать права новой системной УЗ:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=repo ssh key managers,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: member
member: uid=<new_simple_repo>,cn=sysaccounts,cn=etc,dc=example,dc=ru
EOF

На данном шаге, при обновлении только пароля существующей системной УЗ, необходимо выполнить команду:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<system_account>,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: userPassword
userPassword: <newPassword>
EOF

При обновлении УЗ Syncer необходимо дополнительно актуализировать пароль для подключения к контроллеру ALD во вкладке: Модуль синхронизации / Настройки / Контроллеры домена ALD.

Далее необходимо преобразовать пароль для корректного хранения в файлах конфигурации.

Скачать публичный ключ:

aldpro-salt-call aldpro_subsystems.get_crt_pass_to_fs /tmp/test_cert.crt

где /tmp/test_cert.crt абсолютный путь до ключа.

Преобразовать пароль:

aldpro-salt-call aldpro_subsystems.password_encrypt '<PASSWORD>' public_cert_path=/tmp/test_cert.crt

Актуализировать учетные данные в ключах username и password записи обновляемого КД, в случае обновления simple_repo - на сервере репозиториев, DN: fqdn=<fqdn>,cn=computers,cn=accounts,dc=example,dc=ru в атрибуте aldproSubsystemVaultCredentials. Например, для roleservice файл конфигурации будет выглядеть следующим образом:

{
    "passwords": {
        "roleservice": {
            "group": "roleservice",
            "password": "roleserviceEncryptPassword",
            "simple_bind": true,
            "username": "new_roleservice"
        }
    }
}

Обновить значения ключей username и password в /etc/aldpro-salt/stack/encrypted_passwords.yml на КД, а в случае обновления simple_repo - на сервере репозиториев. Например, для roleservice файл конфигурации будет выглядеть следующим образом:

roleservice:
group: roleservice
password: roleserviceEncryptPassword
simple_bind: true
username: new_roleservice

Заменить учетные данные в файлах конфигурации:

Системная УЗ

Подсистема

Файл конфигурации

Переменные

uid=orgunitsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

КД

/etc/aldpro/core.env
ORGUNITS_MOVE_SYSACCOUNT_USER
ORGUNITS_MOVE_SYSACCOUNT_PASSWORD
uid=roleservice_*,cn=sysaccounts,cn=etc,$SUFFIX

КД

/etc/aldpro/core.env
ROLESERVICE_USERNAME
ROLESERVICE_PASSWORD
uid=saltstackservice_*,cn=sysaccounts,cn=etc,$SUFFIX

КД

/etc/aldpro/core.env
LDAP_USER
LDAP_PASSWORD
uid=trustsservice_*,cn=sysaccounts,cn=etc,$SUFFIX

КД

/etc/aldpro/core.env
TRUSTS_SYSACCOUNT_USER
TRUSTS_SYSACCOUNT_PASSWORD
uid=syncer/{domain}@{REALM},cn=sysaccounts,cn=etc,$SUFFIX

КД

/etc/aldpro/core.env
SYNCER_ALDPRO_LOGIN
SYNCER_ALDPRO_PASSWD

Удалить устаревшую УЗ:

ldapdelete -x -D "cn=Directory Manager" -W "uid=<system_account>,cn=sysaccounts,cn=etc,dc=example,dc=ru"

Блокировка системных УЗ для работы с LDAP

Блокировка УЗ 389 DS выполняется посредством добавления атрибута nsAccountLock, который обеспечивает блокировку прохождения аутентификации с LDAP-сервером. Для добавления атрибута необходимо выполнить команду:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<system_account>,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
add: nsAccountLock
nsAccountLock: FALSE
EOF

где:

  1. <system_account> — имя существующей системной учетной записи в дереве cn=sysaccounts;

  2. dc=example,dc=ru — доменная компонента.

Добавление атрибута для соответствующей УЗ происходит единожды, далее значение атрибута возможно к изменению согласно предполагаемым сценариям:

  • для блокировки значение nsAccountLock устанавливается в TRUE;

  • для разблокировки значение nsAccountLock устанавливается в FALSE.

Для возможности изменить атрибут необходимо выполнить команду:

ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: uid=<system_account>,cn=sysaccounts,cn=etc,dc=example,dc=ru
changetype: modify
replace: nsAccountLock
nsAccountLock: FALSE
EOF

nsAccountLock: <TRUE/FALSE> изменяется согласно указанным ранее сценариям.

После выполнения блокировки УЗ выполнение подключений сервисов, использующих УЗ, станет недоступно. В портале при подобных ограничениях будут получены ошибки, обозначающие невозможность соответствующими сервисами и скриптами выполнять аутентификацию под указанной УЗ.

Управление системными учетными записями PostgreSQL

Переопределение системных УЗ для работы с PostgreSQL

В процессе обновления учетных данных для системных учетных записей, использующихся в функционировании PostgreSQL, необходимо провести актуализацию непосредственно в СУБД на тех подсистемах, где требуется обновление. Для переопределения необходимо создать системную УЗ на замену:

Системная УЗ

Подсистема

База данных

Создание УЗ для замены

async_db_*

КД

async

sudo -u postgres psql -c "CREATE USER <user> WITH PASSWORD 'pass';"
sudo -u postgres psql -d <database> -c "REASSIGN OWNED BY <old_user> TO <new_user>;"
sudo -u postgres psql -d <database> -c "DROP OWNED BY <old_user>;"

core_db_*

КД

core

sudo -u postgres psql -c "CREATE USER <user> WITH PASSWORD 'pass';"
sudo -u postgres psql -d <database> -c "REASSIGN OWNED BY <old_user> TO <new_user>;"
sudo -u postgres psql -d <database> -c "DROP OWNED BY <old_user>;"

syncer_db_*

КД

syncer

sudo -u postgres psql -c "CREATE USER <user> WITH PASSWORD 'pass';"
sudo -u postgres psql -d <database> -c "REASSIGN OWNED BY <old_user> TO <new_user>;"
sudo -u postgres psql -d <database> -c "DROP OWNED BY <old_user>;"

repo_db_*

Репозитории ПО

repo

sudo -u postgres psql -c "CREATE USER <user> WITH PASSWORD 'pass';"
sudo -u postgres psql -d <database> -c "REASSIGN OWNED BY <old_user> TO <new_user>;"
sudo -u postgres psql -d <database> -c "DROP OWNED BY <old_user>;"

osinstall_db_*

Установка ОС по сети

osinstall

sudo -u postgres psql -c "CREATE USER <user> WITH PASSWORD 'pass';"
sudo -u postgres psql -d <database> -c "REASSIGN OWNED BY <old_user> TO <new_user>;"
sudo -u postgres psql -d <database> -c "DROP OWNED BY <old_user>;"

На данном шаге, при обновлении только пароля существующей системной УЗ, необходимо выполнить команду:

sudo -u postgres psql -d <database> -c "ALTER USER <username> WITH PASSWORD '<new_password>';"

Далее необходимо преобразовать пароль для корректного хранения в файлах конфигурации.

Скачать публичный ключ:

aldpro-salt-call aldpro_subsystems.get_crt_pass_to_fs /tmp/test_cert.crt

где /tmp/test_cert.crt абсолютный путь до ключа.

Преобразовать пароль:

aldpro-salt-call aldpro_subsystems.password_encrypt '<PASSWORD>' public_cert_path=/tmp/test_cert.crt

Актуализировать учетные данные в ключе password записи обновляемой подсистемы DN: fqdn=<fqdn>,cn=computers,cn=accounts,dc=example,dc=ru в атрибуте aldproSubsystemVaultCredentials. Учетные записи PostgreSQL отражены в ключах postgres_<short_system_account_name>. Например, для core_db_* файл конфигурации будет выглядеть следующим образом:

{
    "passwords": {
         "postgres_core": {
            "db_password": "<coreDbEncryptPassword>"
        }
    }
}

Обновить значения ключа password в /etc/aldpro-salt/stack/encrypted_passwords.yml. Например, для core_db_* файл конфигурации будет выглядеть следующим образом:

postgres_core:
  db_password: <coreDbEncryptPassword>

Заменить учетные данные в файлах конфигурации:

Системная УЗ

Подсистема

Файл конфигурации

Переменные

async_db_*

КД

/etc/aldpro/services.env
ASYNC_DB_USER
ASYNC_DB_PASSWORD

core_db_*

КД

/etc/aldpro/core.env
CORE_DB_USER
CORE_DB_PASSWORD

syncer_db_*

КД

/etc/aldpro/core.env /etc/aldpro/syncer.env
SYNCER_DB_USER
SYNCER_DB_PASSWORD

repo_db_*

Репозитории ПО

/etc/aldpro/repo.env
DB_USER
DB_PASSWORD

osinstall_db_*

Установка ОС по сети

/etc/aldpro/os.env
POSTGRES_USER
POSTGRES_PASSWORD

Удалить устаревшую УЗ:

sudo -u postgres psql -d <database> -c "DROP ROLE <user>;"

Блокировка системных УЗ для работы с PostgreSQL

Блокировка системных УЗ осуществляется средствами PostgreSQL:

Системная УЗ

Подсистема

Блокировка

Разблокировка

async

КД

NOLOGIN позволяет заблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> NOLOGIN;"

LOGIN позволяет разблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> LOGIN;"

core

КД

NOLOGIN позволяет заблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> NOLOGIN;"

LOGIN позволяет разблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> LOGIN;"

syncer

КД

NOLOGIN позволяет заблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> NOLOGIN;"

LOGIN позволяет разблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> LOGIN;"

repo

Репозитории ПО

NOLOGIN позволяет заблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> NOLOGIN;"

LOGIN позволяет разблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> LOGIN;"

osinstall

Установка ОС по сети

NOLOGIN позволяет заблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> NOLOGIN;"

LOGIN позволяет разблокировать пользователя

sudo -u postgres psql -c "ALTER USER <username> LOGIN;"

Управление системными учетными записями RabbitMQ, используемыми для работы ALD Pro

Переопределение системных УЗ для работы с RabbitMQ

В процессе обновления учетных данных для системных учетных записей, использующихся в функционировании RabbitMQ, необходимо провести актуализацию непосредственно в системе управления очередями на тех подсистемах, где требуется обновление. Для этого следует воспользоваться следующими командами:

Системная УЗ

Подсистема

Создание новой УЗ

async_rabbitmq_*

КД

Создать нового пользователя:

rabbitmqctl add_user <username> <password>

Присвоить роль администратора:

rabbitmqctl set_user_tags <username> administrator

Выделить права:

rabbitmqctl set_permissions -p <vhost> <username> ".*" ".*" ".*"

-p значение VHOST из файлов переменных *.env

core_rabbitmq_*

КД

Создать нового пользователя:

rabbitmqctl add_user <username> <password>

Присвоить роль администратора:

rabbitmqctl set_user_tags <username> administrator

Выделить права:

rabbitmqctl set_permissions -p <vhost> <username> ".*" ".*" ".*"

-p значение VHOST из файлов переменных *.env

repo_rabbitmq_*

Репозитории ПО

Создать нового пользователя:

rabbitmqctl add_user <username> <password>

Присвоить роль администратора:

rabbitmqctl set_user_tags <username> administrator

Выделить права:

rabbitmqctl set_permissions -p <vhost> <username> ".*" ".*" ".*"

-p значение VHOST из файлов переменных *.env

osinstall_rabbitmq_*

Установка ОС по сети

Создать нового пользователя:

rabbitmqctl add_user <username> <password>

Присвоить роль администратора:

rabbitmqctl set_user_tags <username> administrator

Выделить права:

rabbitmqctl set_permissions -p <vhost> <username> ".*" ".*" ".*"

-p значение VHOST из файлов переменных *.env

На данном шаге, при обновлении только пароля существующей системной УЗ, необходимо выполнить команду:

rabbitmqctl change_password <system_account> <newpassword>

Далее необходимо преобразовать пароль для корректного хранения в файлах конфигурации.

Скачать публичный ключ:

aldpro-salt-call aldpro_subsystems.get_crt_pass_to_fs /tmp/test_cert.crt

где /tmp/test_cert.crt абсолютный путь до ключа.

Преобразовать пароль:

aldpro-salt-call aldpro_subsystems.password_encrypt '<PASSWORD>' public_cert_path=/tmp/test_cert.crt

Актуализировать учетные данные в ключе password записи обновляемой подсистемы DN: fqdn=<fqdn>,cn=computers,cn=accounts,dc=example,dc=ru в атрибуте aldproSubsystemVaultCredentials. Учетные записи RabbitMQ отражены в ключах rabbitmq_<short_system_account_name>. Например, для core_rabbitmq_* файл конфигурации будет выглядеть следующим образом:

{
  "passwords": {
      "rabbitmq_core": {
          "db_password": "<coreRabbitmqEncryptPassword>"
      }
  }
}

Обновить значения ключа password в /etc/aldpro-salt/stack/encrypted_passwords.yml. Например, для core_rabbitmq_* файл конфигурации будет выглядеть следующим образом:

rabbitmq_core:
 db_password: <coreRabbitmqEncryptPassword>

Актуализировать учетные данные в файлах конфигурации:

Системная УЗ

Подсистема

Файл конфигурации

Переменные

async

КД

/etc/aldpro/services.env
ASYNC_RABBIT_LOGIN
ASYNC_RABBIT_PASSWORD

core

КД

/etc/aldpro/core.env
CELERY_RABBIT_USER
CELERY_RABBIT_PASSWORD

repo

Репозитории ПО

/etc/aldpro/repo.env
CELERY_RABBIT_USER
CELERY_RABBIT_PASSWORD

osinstall

Установка ОС по сети

/etc/aldpro/os.env
CELERY_RABBIT_USER
CELERY_RABBIT_PASSWORD

Удалить устаревшую УЗ:

rabbitmqctl delete_user <system_account>

Блокировка системных УЗ для работы с RabbitMQ

Механизм блокировки учетных записей (УЗ) в среде RabbitMQ реализуется посредством встроенных функциональных возможностей самой службы обмена сообщениями. Эта процедура осуществляется путем взаимодействия с командным интерфейсом, доступным в RabbitMQ. Пользовательские учетные записи, созданные внутри системы, обладают определенными правами доступа и полномочиями, определяющими уровень привилегий для выполнения операций в брокере сообщений, при выполнении процедуры блокировки соответствующие разрешения и полномочия учетной записи аннулируются, что фактически лишает пользователя способности взаимодействовать с сервисом, выполняя запланированные действия.

Системная УЗ

Подсистема

Блокировка

Разблокировка

async

КД

Команда clear_permissions инструктирует брокера RabbitMQ запретить пользователю доступ к указанному виртуальному хосту

rabbitmqctl clear_permissions -p <vhost> <system_account>

-p значение VHOST из файлов переменных *.env

rabbitmqctl set_permissions -p <vhost> <system_account> ".*" ".*" ".*"

core

КД

Команда clear_permissions инструктирует брокера RabbitMQ запретить пользователю доступ к указанному виртуальному хосту

rabbitmqctl clear_permissions -p <vhost> <system_account>

-p значение VHOST из файлов переменных *.env

rabbitmqctl set_permissions -p <vhost> <system_account> ".*" ".*" ".*"

repo

Репозитории ПО

Команда clear_permissions инструктирует брокера RabbitMQ запретить пользователю доступ к указанному виртуальному хосту

rabbitmqctl clear_permissions -p <vhost> <system_account>

-p значение VHOST из файлов переменных *.env

rabbitmqctl set_permissions -p <vhost> <system_account> ".*" ".*" ".*"

osinstall

Установка ОС по сети

Команда clear_permissions инструктирует брокера RabbitMQ запретить пользователю доступ к указанному виртуальному хосту

rabbitmqctl clear_permissions -p <vhost> <system_account>

-p значение VHOST из файлов переменных *.env

rabbitmqctl set_permissions -p <vhost> <system_account> ".*" ".*" ".*"

Управление системными учетными записями Zabbix и Grafana

Переопределение системных УЗ для работы с Zabbix и Grafana

В процессе обновления учетных данных для системных учетных записей, использующихся в функционировании Zabbix и Grafana, необходимо провести актуализацию непосредственно в системе мониторинга на тех подсистемах, где требуется обновление. Для переопределения monitoring_* или zabbix_api_* необходимо создать системную УЗ на замену, воспользовавшись веб-интерфейсом Zabbix:

../../../_images/pic1.png

На данном шаге, при обновлении только пароля существующей системной УЗ, необходимо выполнить команду обновления пароля в карточке пользователя:

../../../_images/pic2.png

Изменение учетных данных УЗ в Grafana осуществляется аналогично через веб-интерфейс:

../../../_images/pic3.png

Обновление или сброс пароля администратора Grafana можно выполнить с помощью команды, которая автоматизирует процесс изменения пароля во всех необходимых конфигурациях:

grafana-cli admin reset-admin-password <new password>

Далее необходимо преобразовать пароль для корректного хранения в файлах конфигурации.

Скачать публичный ключ:

aldpro-salt-call aldpro_subsystems.get_crt_pass_to_fs /tmp/test_cert.crt

где /tmp/test_cert.crt абсолютный путь до ключа.

Преобразовать пароль:

aldpro-salt-call aldpro_subsystems.password_encrypt '<PASSWORD>' public_cert_path=/tmp/test_cert.crt

Актуализировать учетные данные в записи каталога обновляемой подсистемы:

Системная УЗ

DN

Атрибут

Ключ

monitoring_*

fqdn=<fqdn_dc>,cn=computers,cn=accounts,dc=example,dc=ru
aldproSubsystem VaultCredentials (пробел удалить)
zabbix_monitoring:password: <password>
zabbix_monitoring:username: <username>

monitoring_*

fqdn=<fqdn_mon>,cn=computers,cn=accounts,dc=example,dc=ru
rbtaSubsystemConfig
monitoring_credentials:<monitoring_dc = username>
monitoring_credentials:<monitoring_dc = username>:password: <password>
monitoring_credentials:<monitoring_dc = username>:username <username>
monitoring_status:<monitoring_dc = username>

zabbix_api_*

fqdn=<fqdn_mon>,cn=computers,cn=accounts,dc=example,dc=ru
aldproSubsystem VaultCredentials (пробел удалить)
zabbix_api:password: <password>

admin (grafana)

fqdn=<fqdn_mon>,cn=computers,cn=accounts,dc=example,dc=ru
aldproSubsystem VaultCredentials (пробел удалить)
grafana:password: <password>

Например, для monitoring_dc01 конфигурация rbtaSubsystemConfig будет выглядеть следующим образом:

{
    "is_master": true,
    "monitoring_credentials": {
        "new_monitoring_dc01": {
            "password": "newMonitoringDc01EncryptPassword",
            "username": "new_monitoring_dc01"
        }
    },
    "monitoring_status": {
        "new_monitoring_dc01": "True"
    },
    "timestamp": "timestamp",
    "version_ald": "3.2.0"
}

Актуализировать учетные данные в файлах конфигурации:

Системная УЗ

Подсистема

Файл конфигурации

Переменные/Ключ

monitoring_*

КД

/etc/aldpro/core.env
ZABBIX_USERNAME

ZABBIX_PSW

monitoring_*

КД

/etc/aldpro-salt/stack/encrypted_passwords.yml
zabbix_monitoring:password:

zabbix_monitoring:username:

zabbix_api_*

Мониторинг

/etc/systemd/system/aldpro-zabbix-discovering-systemd.conf
ALDPRO_ZABBIX_PASSWORD

zabbix_api_*

Мониторинг

/etc/aldpro-salt/stack/encrypted_passwords.yml
zabbix_api:password:

zabbix_api_*

Мониторинг

/etc/aldpro-salt/stack/aldpro_install.yml
aldpro:subsystems:zab bix:zabbix_api:username: (пробел удалить)

Например, для monitoring_dc01 файл конфигурации /etc/aldpro-salt/stack/encrypted_passwords.yml будет выглядеть следующим образом:

zabbix_monitoring:
  password: newMonitoringDc01EncryptPassword
  simple_bind: true
  username: new_monitoring_dc01
  zabbix: true

Перезагрузить aldpro-salt-minion:

systemctl restart aldpro-salt-minion.service

Пересобрать конфигурацию pillar:

aldpro-salt-call aldpro_subsystems.build_deploy_pillar -c /srv/aldpro-salt/config/

В случае обновления пароля учетной записи zabbix_api_*, которая необходима для интеграции Grafana с Zabbix, необходимо провести соответствующие изменения в конфигурации Grafana.

  1. Перейти в раздел Connections (Подключения) и выбрать пункт Data Sources (Источники данных). В списке источников данных выбрать конфигурацию, связанную с Zabbix. Полный путь до раздела: Home → Connections → Your → connections → Data sources → Zabbix.

  2. В настройках источника данных найти поле, предназначенное для хранения пароля пользователя Zabbix. Ввести новые учетные данные.

  3. После обновления проверить и подтвердить корректность остальных параметров подключения. Нажать кнопку [Save & Test] (Сохранить и протестировать), чтобы проверить соединение с Zabbix и убедиться в правильности введённых данных.

../../../_images/pic4.png

В Zabbix авторизоваться под новой УЗ и удалить неактуальную:

../../../_images/pic5.png

Блокировка системных УЗ для работы с Zabbix и Grafana

Блокировка УЗ Zabbix осуществляется через добавление пользователя в группу Disabled:

../../../_images/pic6.png

Блокировка УЗ в Grafana осуществляется через веб-интерфейс:

../../../_images/pic7.png

Генерация SECRET_KEY

В конфигурационных файлах ALD Pro, указанных выше, содержатся переменные SECRET_KEY, представляющие собой ключи для Django, которые автоматически создаются модулями ALD Pro. Если возникает необходимость замены ключа, следует воспользоваться командой:

aldpro-salt-call django_secret_key.generate

В файлах .env также хранится переменная NOTIFICATIONS_BASE64_PASSWORD, необходимая для отображения иконки статуса «Связь установлена» на главной странице портала управления. Для генерации NOTIFICATIONS_BASE64_PASSWORD используется команда:

aldpro-salt-call hashutil.base64_encodestring $(openssl rand -hex 28)

Новый пароль указывается в файлах /etc/aldpro/services.env и /etc/aldpro/core.env. Генерация производится на каждом КД.

В конфигурационных файлах ALD Pro на подсистемах (/etc/aldpro/repo.env и /etc/aldpro/os.env) также содержатся переменные SECRET_KEY, представляющие собой ключи для Django, которые автоматически создаются модулями ALD Pro. Если возникает необходимость замены ключа, следует воспользоваться командой:

aldpro-salt-call django_secret_key.generate

Перезапуск затронутых сервисов ALD Pro и других приложений после смены учетных данных

После изменения пароля и обновления конфигураций приложений необходимо перезапустить:

  • FreeIPA (IPA сервисы);

  • 389 DS (служба LDAP);

  • службы репликации;

  • сервисы, использующие Kerberos или Sudo;

  • другие связанные сервисы и приложения.

На каждом контроллере домена выполнить:

aldproctl restart

Для перезапуска репликации необходимо временно отключить соглашение о репликации:

dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt disable --suffix "dc=example,dc=com" example-agreement

Где example-agreement — наименование соглашения о репликации. Для получения необходимо выполнить команду:

dsconf -j <INSTANCE> replication status --suffix dc=example,dc=com

agmt-name будет соответствовать example-agreement. Повторно включить соглашение о репликации, чтобы установить обновление:

dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt enable --suffix "dc=example,dc=com" example-agreement

Проверить статус репликации:

dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt status --suffix "dc=example,dc=com" example-agreement

Дополнительно:

systemctl restart postgresql sssd apache2 rabbitmq-server

На сервере установки ОС:

systemctl restart tftpd-hpa rabbitmq-server postgresql

На сервере репозиториев:

systemctl restart rabbitmq-server postgresql

На сервере мониторинга:

systemctl restart zabbix-server.service grafana-server.service postgresql apache2

После смены пароля и перезапуска репликации убедиться, что синхронизация данных между репликами работает корректно. Например, создать произвольную запись (нового пользователя) на одном сервере и проверить, что эта же запись появилась на других репликах.

Также рекомендуется произвести перезапуск сторонних служб, не являющихся частью ALD Pro, которые задействовали системные учетные записи.